package mapper;

import com.sqsf.javabean.User;

import java.util.List;

public interface UserMapper {
    List<User> selectAll();
    //在实际查询中 每个接口对应一个配置内容
    //每个方法书写的sql语句固定 功能固定
    //但是实际开发中可能出现多种查询数据的需求
    //user对象 拥有uid username phone查询属性
    //根据不同需求 查询的组合方式会出现很多
    //单表查询除了以上的查询全部 还可能拥有
    //selectByUid
    //selectByUsername
    //selectByPhone
    //selectByUidAndUsername
    //selectByUidAndPhone
    //selectByUsernameAndPhone
    //selectByUidAndUsernameAndPhone
    //以上的方法sql 都有一部分相同的select * from user
    //只是where条件不同 如果使用动态sql标签 根据参数动态生成sql
    //那么仅书写一个方法就可以实现如上功能

    //所有的属性都来至于User
    List<User> selectByUser(User user);

    //有时虽然传入多个参数 但是肯能会根据优先级判断
    //uid username phone 如果有uid则直接按uid进行查询否则username其次phone
    List<User> selectByUserOne(User user);

    //在进行修改功能书写时一般就是根据主键修改其他数据
    //updateUsernameByUid
    //updatePasswordByUid
    //updatePhoneByUid
    //......
    //也可以对修改的sql进行拼接
    int updateUser(User user);

    int trimTest();

    //根据数组删除数据
    int deleteByArray(int[] array);

    //根据集合添加数据
    int insertList(List<User> list);
}
